Goto

Collaborating Authors

 native code


A Picture is Worth 500 Labels: A Case Study of Demographic Disparities in Local Machine Learning Models for Instagram and TikTok

West, Jack, Thiemt, Lea, Ahmed, Shimaa, Bartig, Maggie, Fawaz, Kassem, Banerjee, Suman

arXiv.org Artificial Intelligence

Mobile apps have embraced user privacy by moving their data processing to the user's smartphone. Advanced machine learning (ML) models, such as vision models, can now locally analyze user images to extract insights that drive several functionalities. Capitalizing on this new processing model of locally analyzing user images, we analyze two popular social media apps, TikTok and Instagram, to reveal (1) what insights vision models in both apps infer about users from their image and video data and (2) whether these models exhibit performance disparities with respect to demographics. As vision models provide signals for sensitive technologies like age verification and facial recognition, understanding potential biases in these models is crucial for ensuring that users receive equitable and accurate services. We develop a novel method for capturing and evaluating ML tasks in mobile apps, overcoming challenges like code obfuscation, native code execution, and scalability. Our method comprises ML task detection, ML pipeline reconstruction, and ML performance assessment, specifically focusing on demographic disparities. We apply our methodology to TikTok and Instagram, revealing significant insights. For TikTok, we find issues in age and gender prediction accuracy, particularly for minors and Black individuals. In Instagram, our analysis uncovers demographic disparities in the extraction of over 500 visual concepts from images, with evidence of spurious correlations between demographic features and certain concepts.


Tutorial on using LLVM to JIT PyTorch fx graphs to native code (x86/arm/risc-v/wasm) (Part I – Scalars)

#artificialintelligence

In 2009 I started playing with LLVM for some projects (data structure jit, for genetic programming, jit for tensorflow graphs, etc), and in these projects I realized how powerful LLVM design was at the time (and still is): using an elegant IR (intermediate representation) with an user-facing API and modularized front-ends and backends with plenty of transformation and optimization passes. Nowadays, LLVM is the main engine behind many compilers and JIT compilation and where most of the modern developments in compilers is happening. On a related note, PyTorch is doing an amazing job of exposing more of the torch tracing system and its IR and graphs, not to mention their work on recent fusers and TorchDynamo. In this context, I was doing a small test to re-implement Shine, but using ATen ops for tensors and realized that there were not many educative tutorials on how to use LLVM to JIT PyTorch graphs, so this is a quick series (if time helps there will be more following posts) on how to use LLVM (python bindings) to go from PyTorch graphs (as traced by torch.fx) to LLVM IR and native code. PyTorch itself also has a compiler that uses LLVM to generate native code for subgraphs that the fuser identifies.


Machine Learning for JavaScript Developers TensorFlow.js

#artificialintelligence

Machine Learning (ML) is a branch of Artificial Intelligence(AI) that gives machines capabilities to learn and improve without explicit programming or human interference, it uses data to learn itself. TensorFlow is a free and open-source software library for dataflow and differentiable programming across a range of tasks. It is a symbolic math library and is also used for machine learning applications such as neural networks. In simple terms, TensorFlow is a machine learning library made by Google used to design, build and train machine learning models. Google introduced TensorFlow in 2015 and was used with Python, though it has APIs in Java, C and Go. It is partly implemented in native C that helped TensorFlow having good performance benefits but was not able to run in the web browser because a browser can't run native code.


Evaluating Microsoft Composer for Bot Framework

#artificialintelligence

Most chatbot architectures consist of four pillars, these are typically intents, entities, the dialog flow (State Machine), and scripts. The dialog contains the blocks or states a user navigates between. Each dialog is associated with one or more intents and or entities. Session variables can also be employed the decide on which states or nodes must be visited. The intents and entities constitute the condition on which that dialog is accessed.


A Method of Virtual Camera Selection Using Soft Constraints

Janzen, Michael (University of Saskatchewan) | Horsch, Michael (University of Saskatchewan) | Neufeld, Eric (University of Saskatchewan)

AAAI Conferences

We describe a software tool to select among camera feeds from multiple virtual cameras in a virtual environment using semiring constraint satisfaction problem techniques (SCSP), a soft constraint approach. We show how to encode a designer's preferences, and select the best camera feed even in over-constrained or under-constrained environments. The system functions in real time for dynamic scenes, using only current information (ie. no prediction). To reduce computation costs for a final implementation, the SCSP evaluation can be cached and converted to native code. Our approach is implemented in two virtual environments: a virtual hockey game using a spectator viewpoint, and a virtual 3D maze game using a third person perspective. Comparisons against hard constraints (constraint satisfaction problems) are made.


On the Implementation of GNU Prolog

Diaz, Daniel, Abreu, Salvador, Codognet, Philippe

arXiv.org Artificial Intelligence

GNU Prolog is a general-purpose implementation of the Prolog language, which distinguishes itself from most other systems by being, above all else, a native-code compiler which produces standalone executables which don't rely on any byte-code emulator or meta-interpreter. Other aspects which stand out include the explicit organization of the Prolog system as a multipass compiler, where intermediate representations are materialized, in Unix compiler tradition. GNU Prolog also includes an extensible and high-performance finite domain constraint solver, integrated with the Prolog language but implemented using independent lower-level mechanisms. This article discusses the main issues involved in designing and implementing GNU Prolog: requirements, system organization, performance and portability issues as well as its position with respect to other Prolog system implementations and the ISO standardization initiative.